#ifndef PREDICATS_H
#define PREDICATS_H

#include <string>
#include "rules.h"

/*FindNTRules - предикат. Використовується ф-цією Parser::findRules ()*/
template<class T>class FindNTRules
{
    std::string var;
public:
    FindNTRules(std::string v)
        : var (v) {}
    bool operator()(T v) { return var == v.getNTSymbol(); }
};

/*FindNTNumberId - предикат. Повертає порядковий номер NT-симола в правилах граматики*/
template<class T>class FindNTNumberId
{
    std::string nt;
public:
    FindNTNumberId(std::string n)
        : nt(n) {}
    bool operator()(T v) { return nt == v.getNTSymbol(); }
};

#endif // PREDICATS_H
